/*


Class Matrix For basic manipulation on matrix 
 Author : Vishwajeet Dusane 
*/

#include<stdio.h>
#include<math.h>
#include<iostream.h>
class Matrix
{
   public:
  double matrixA[4][4],matrixB[4],matrixX[4];
  
  
  void getMatrixA();
  void getMatrixB();
  void printMatrix();
  double getElement(int,int);
  
  int readMatrix(char [50]);
  
  
  
};
 




 int Matrix::readMatrix(char fname[50])
  {
    
    ifstream fin(fname);
     
     if(!fin)
     {
       cout<<"ERROR : While Opening File "<<fname<<endl;
       return 0;
     
     }
     
     
     fin>>row;
     fin>>column; 
     
     for(int i=0; i<row ;i++)
     {
       for(int j=0;j<column;j++)
        {
            //fin.read((double) &matrix[i][j],sizeof(double));
	    fin>>matrix[i][j];
	} 
     }
    fin.close();
    return 1; 
  }


void Matrix:: getMatrixA()
 {
   matrixA[0][0]=10;    matrixA[0][1]=7;	matrixA[0][2]=8;	matrixA[0][3]=7;
   matrixA[1][0]=7;     matrixA[1][1]=5;	matrixA[1][2]=6;	matrixA[1][3]=5;
   matrixA[2][0]=8;     matrixA[2][1]=6;	matrixA[2][2]=10;	matrixA[2][3]=9;
   matrixA[3][0]=7;     matrixA[3][1]=5;	matrixA[3][2]=9;	matrixA[3][3]=10;
   
 
 } 
 
 
 void Matrix::getMatrixB()
 {
   
 matrixB[0]=32.1; 
 matrixB[1]=22.9;
 matrixB[2]=33.1;
 matrixB[3]=30.9; 
 
 } 
 
double Matrix::getElement(int row,int column)
{
   return matrixA[row][column];

}

void Matrix::printMatrix()
{
   for(int i=0 ;i<4;i++)
   {
    for(int j=0;j<4;j++)
     cout<<"  "<<matrixA[i][j];
     cout<<"| "<<matrixB[i]<<endl;
     
   }
}
